		/*
 * config.h
 */

#ifndef CONFIG_H_
#define CONFIG_H_


#define TAILLE_TAB_CAPTEUR 5
#define TAILLE_TAB_ACTIONNEUR 5
#define TAILLE_TAB_REGLE 20
#define TAILLE_MSG_HISTORIQUE 128
#define TAILLE_ID_CAPTEUR 10
#define MSG_FIN 4

/************************************************************
//interface monitoring-Ghome
***********************************************************/
//structure stocké dans la table de capteur
typedef struct
{
	long type; //demande par linux pour les boites au lettres

	char * idCapteur;

	char* typeCapteur;

	char* etat;

	double minIntervalSecurite;

	double maxIntervalSecurite;

	double tempsRefresh;
	
	double valeur;
} MapCapteur;


//structure stocke dans l'actionneur
typedef struct
{
	long type;//demande par linux pour les boites au lettres
    char * idActionneur;
    char* typeActionneur;
    double borneMin;//valeur en cas d’actionneurs gradues ou 0 (=OFF) en cas d’actionneur binaire
    double borneMax; //valeur en cas d’actionneurs gradues ou 0 (=OFF) en cas d’actionneur binaire
    int etat; //o -off, 1 on  TODO
} MapActionneur;

//msg recupere de boite aux lettres de capteur
typedef struct
{
	long type;//demande par linux pour les boites au lettres
	int typeMessage; //error 1 ou info 2
	char idCapteur[TAILLE_ID_CAPTEUR];
	double valeur; //valeur envoyee par le capteur(en cas d’info) ou code erreur(en cas d’erreur)
} MsgCapteur;

//msg recupere de boite aux lettres d'actionneur
typedef struct
{
    long type;//demande par linux pour les boites au lettres
    char idActionneur[20];
	int onOff;
    double valeur; //valeur a atribuer a l’actionneur
} MsgActionneur;

//msg historique TODO
typedef struct
{
    long type;//demande par linux pour les boites au lettres
    char  mtext[TAILLE_MSG_HISTORIQUE];
} MsgHistorique;

//bal
int bal_monitoring_mere;//  message  monitoring>mere struct MsgCapteur

int bal_mere_actionneur;//  message  mere>monitoring struct Msg Actionneur

int bal_commande_actionneur; // message for actionners should be sent to cristian MsgActionneur

//incoming msg Q containing info update of TabCapteur, from cristian //MsgCapteur
int msgQCapteurUpdate;

//semaphore
int semTabCapteur;
int semTabActionneur;
int semTabRegle;

//mem partagee
MapCapteur * pTabCapteur;
int nbCapteur;
int memTabCapteurId;

MapActionneur * pTabActionneur;
int memTabActionneurId;
int nbActionneur;

void * pTabRegle;
int memTabRegleId;


#endif /* CONFIG_H_ */

